(function ($) {
  function sc_setScroll(a, b, c) {
    return (
      "transition" == c.transition && "swing" == b && (b = "ease"),
      {
        anims: [],
        duration: a,
        orgDuration: a,
        easing: b,
        startTime: getTime(),
      }
    );
  }
  function sc_startScroll(a, b) {
    for (var c = 0, d = a.anims.length; d > c; c++) {
      var e = a.anims[c];
      e && e[0][b.transition](e[1], a.duration, a.easing, e[2]);
    }
  }
  function sc_stopScroll(a, b) {
    is_boolean(b) || (b = !0), is_object(a.pre) && sc_stopScroll(a.pre, b);
    for (var c = 0, d = a.anims.length; d > c; c++) {
      var e = a.anims[c];
      e[0].stop(!0), b && (e[0].css(e[1]), is_function(e[2]) && e[2]());
    }
    is_object(a.post) && sc_stopScroll(a.post, b);
  }
  function sc_afterScroll(a, b, c) {
    switch ((b && b.remove(), c.fx)) {
      case "fade":
      case "crossfade":
      case "cover-fade":
      case "uncover-fade":
        a.css("opacity", 1), a.css("filter", "");
    }
  }
  function sc_fireCallbacks(a, b, c, d, e) {
    if ((b[c] && b[c].call(a, d), e[c].length))
      for (var f = 0, g = e[c].length; g > f; f++) e[c][f].call(a, d);
    return [];
  }
  function sc_fireQueue(a, b, c) {
    return b.length && (a.trigger(cf_e(b[0][0], c), b[0][1]), b.shift()), b;
  }
  function sc_hideHiddenItems(a) {
    a.each(function () {
      var a = $(this);
      a.data("_cfs_isHidden", a.is(":hidden")).hide();
    });
  }
  function sc_showHiddenItems(a) {
    a &&
      a.each(function () {
        var a = $(this);
        a.data("_cfs_isHidden") || a.show();
      });
  }
  function sc_clearTimers(a) {
    return (
      a.auto && clearTimeout(a.auto), a.progress && clearInterval(a.progress), a
    );
  }
  function sc_mapCallbackArguments(a, b, c, d, e, f, g) {
    return {
      width: g.width,
      height: g.height,
      items: { old: a, skipped: b, visible: c },
      scroll: { items: d, direction: e, duration: f },
    };
  }
  function sc_getDuration(a, b, c, d) {
    var e = a.duration;
    return "none" == a.fx
      ? 0
      : ("auto" == e
          ? (e = (b.scroll.duration / b.scroll.items) * c)
          : 10 > e && (e = d / e),
        1 > e ? 0 : ("fade" == a.fx && (e /= 2), Math.round(e)));
  }
  function nv_showNavi(a, b, c) {
    var d = is_number(a.items.minimum) ? a.items.minimum : a.items.visible + 1;
    if ("show" == b || "hide" == b) var e = b;
    else if (d > b) {
      debug(
        c,
        "Not enough items (" +
          b +
          " total, " +
          d +
          " needed): Hiding navigation."
      );
      var e = "hide";
    } else var e = "show";
    var f = "show" == e ? "removeClass" : "addClass",
      g = cf_c("hidden", c);
    a.auto.button && a.auto.button[e]()[f](g),
      a.prev.button && a.prev.button[e]()[f](g),
      a.next.button && a.next.button[e]()[f](g),
      a.pagination.container && a.pagination.container[e]()[f](g);
  }
  function nv_enableNavi(a, b, c) {
    if (!a.circular && !a.infinite) {
      var d = "removeClass" == b || "addClass" == b ? b : !1,
        e = cf_c("disabled", c);
      if ((a.auto.button && d && a.auto.button[d](e), a.prev.button)) {
        var f = d || 0 == b ? "addClass" : "removeClass";
        a.prev.button[f](e);
      }
      if (a.next.button) {
        var f = d || b == a.items.visible ? "addClass" : "removeClass";
        a.next.button[f](e);
      }
    }
  }
  function go_getObject(a, b) {
    return is_function(b) ? (b = b.call(a)) : is_undefined(b) && (b = {}), b;
  }
  function go_getItemsObject(a, b) {
    return (
      (b = go_getObject(a, b)),
      is_number(b)
        ? (b = { visible: b })
        : "variable" == b
        ? (b = { visible: b, width: b, height: b })
        : is_object(b) || (b = {}),
      b
    );
  }
  function go_getScrollObject(a, b) {
    return (
      (b = go_getObject(a, b)),
      is_number(b)
        ? (b = 50 >= b ? { items: b } : { duration: b })
        : is_string(b)
        ? (b = { easing: b })
        : is_object(b) || (b = {}),
      b
    );
  }
  function go_getNaviObject(a, b) {
    if (((b = go_getObject(a, b)), is_string(b))) {
      var c = cf_getKeyCode(b);
      b = -1 == c ? $(b) : c;
    }
    return b;
  }
  function go_getAutoObject(a, b) {
    return (
      (b = go_getNaviObject(a, b)),
      is_jquery(b)
        ? (b = { button: b })
        : is_boolean(b)
        ? (b = { play: b })
        : is_number(b) && (b = { timeoutDuration: b }),
      b.progress &&
        (is_string(b.progress) || is_jquery(b.progress)) &&
        (b.progress = { bar: b.progress }),
      b
    );
  }
  function go_complementAutoObject(a, b) {
    return (
      is_function(b.button) && (b.button = b.button.call(a)),
      is_string(b.button) && (b.button = $(b.button)),
      is_boolean(b.play) || (b.play = !0),
      is_number(b.delay) || (b.delay = 0),
      is_undefined(b.pauseOnEvent) && (b.pauseOnEvent = !0),
      is_boolean(b.pauseOnResize) || (b.pauseOnResize = !0),
      is_number(b.timeoutDuration) ||
        (b.timeoutDuration = 10 > b.duration ? 2500 : 5 * b.duration),
      b.progress &&
        (is_function(b.progress.bar) &&
          (b.progress.bar = b.progress.bar.call(a)),
        is_string(b.progress.bar) && (b.progress.bar = $(b.progress.bar)),
        b.progress.bar
          ? (is_function(b.progress.updater) ||
              (b.progress.updater = $.fn.carouFredSel.progressbarUpdater),
            is_number(b.progress.interval) || (b.progress.interval = 50))
          : (b.progress = !1)),
      b
    );
  }
  function go_getPrevNextObject(a, b) {
    return (
      (b = go_getNaviObject(a, b)),
      is_jquery(b) ? (b = { button: b }) : is_number(b) && (b = { key: b }),
      b
    );
  }
  function go_complementPrevNextObject(a, b) {
    return (
      is_function(b.button) && (b.button = b.button.call(a)),
      is_string(b.button) && (b.button = $(b.button)),
      is_string(b.key) && (b.key = cf_getKeyCode(b.key)),
      b
    );
  }
  function go_getPaginationObject(a, b) {
    return (
      (b = go_getNaviObject(a, b)),
      is_jquery(b)
        ? (b = { container: b })
        : is_boolean(b) && (b = { keys: b }),
      b
    );
  }
  function go_complementPaginationObject(a, b) {
    return (
      is_function(b.container) && (b.container = b.container.call(a)),
      is_string(b.container) && (b.container = $(b.container)),
      is_number(b.items) || (b.items = !1),
      is_boolean(b.keys) || (b.keys = !1),
      is_function(b.anchorBuilder) ||
        is_false(b.anchorBuilder) ||
        (b.anchorBuilder = $.fn.carouFredSel.pageAnchorBuilder),
      is_number(b.deviation) || (b.deviation = 0),
      b
    );
  }
  function go_getSwipeObject(a, b) {
    return (
      is_function(b) && (b = b.call(a)),
      is_undefined(b) && (b = { onTouch: !1 }),
      is_true(b) ? (b = { onTouch: b }) : is_number(b) && (b = { items: b }),
      b
    );
  }
  function go_complementSwipeObject(a, b) {
    return (
      is_boolean(b.onTouch) || (b.onTouch = !0),
      is_boolean(b.onMouse) || (b.onMouse = !1),
      is_object(b.options) || (b.options = {}),
      is_boolean(b.options.triggerOnTouchEnd) ||
        (b.options.triggerOnTouchEnd = !1),
      b
    );
  }
  function go_getMousewheelObject(a, b) {
    return (
      is_function(b) && (b = b.call(a)),
      is_true(b)
        ? (b = {})
        : is_number(b)
        ? (b = { items: b })
        : is_undefined(b) && (b = !1),
      b
    );
  }
  function go_complementMousewheelObject(a, b) {
    return b;
  }
  function gn_getItemIndex(a, b, c, d, e) {
    if (
      (is_string(a) && (a = $(a, e)),
      is_object(a) && (a = $(a, e)),
      is_jquery(a)
        ? ((a = e.children().index(a)), is_boolean(c) || (c = !1))
        : is_boolean(c) || (c = !0),
      is_number(a) || (a = 0),
      is_number(b) || (b = 0),
      c && (a += d.first),
      (a += b),
      d.total > 0)
    ) {
      for (; a >= d.total; ) a -= d.total;
      for (; 0 > a; ) a += d.total;
    }
    return a;
  }
  function gn_getVisibleItemsPrev(a, b, c) {
    for (var d = 0, e = 0, f = c; f >= 0; f--) {
      var g = a.eq(f);
      if (
        ((d += g.is(":visible") ? g[b.d.outerWidth](!0) : 0),
        d > b.maxDimension)
      )
        return e;
      0 == f && (f = a.length), e++;
    }
  }
  function gn_getVisibleItemsPrevFilter(a, b, c) {
    return gn_getItemsPrevFilter(a, b.items.filter, b.items.visibleConf.org, c);
  }
  function gn_getScrollItemsPrevFilter(a, b, c, d) {
    return gn_getItemsPrevFilter(a, b.items.filter, d, c);
  }
  function gn_getItemsPrevFilter(a, b, c, d) {
    for (var e = 0, f = 0, g = d, h = a.length; g >= 0; g--) {
      if ((f++, f == h)) return f;
      var i = a.eq(g);
      if (i.is(b) && (e++, e == c)) return f;
      0 == g && (g = h);
    }
  }
  function gn_getVisibleOrg(a, b) {
    return (
      b.items.visibleConf.org ||
      a.children().slice(0, b.items.visible).filter(b.items.filter).length
    );
  }
  function gn_getVisibleItemsNext(a, b, c) {
    for (var d = 0, e = 0, f = c, g = a.length - 1; g >= f; f++) {
      var h = a.eq(f);
      if (
        ((d += h.is(":visible") ? h[b.d.outerWidth](!0) : 0),
        d > b.maxDimension)
      )
        return e;
      if ((e++, e == g + 1)) return e;
      f == g && (f = -1);
    }
  }
  function gn_getVisibleItemsNextTestCircular(a, b, c, d) {
    var e = gn_getVisibleItemsNext(a, b, c);
    return b.circular || (c + e > d && (e = d - c)), e;
  }
  function gn_getVisibleItemsNextFilter(a, b, c) {
    return gn_getItemsNextFilter(
      a,
      b.items.filter,
      b.items.visibleConf.org,
      c,
      b.circular
    );
  }
  function gn_getScrollItemsNextFilter(a, b, c, d) {
    return gn_getItemsNextFilter(a, b.items.filter, d + 1, c, b.circular) - 1;
  }
  function gn_getItemsNextFilter(a, b, c, d) {
    for (var f = 0, g = 0, h = d, i = a.length - 1; i >= h; h++) {
      if ((g++, g >= i)) return g;
      var j = a.eq(h);
      if (j.is(b) && (f++, f == c)) return g;
      h == i && (h = -1);
    }
  }
  function gi_getCurrentItems(a, b) {
    return a.slice(0, b.items.visible);
  }
  function gi_getOldItemsPrev(a, b, c) {
    return a.slice(c, b.items.visibleConf.old + c);
  }
  function gi_getNewItemsPrev(a, b) {
    return a.slice(0, b.items.visible);
  }
  function gi_getOldItemsNext(a, b) {
    return a.slice(0, b.items.visibleConf.old);
  }
  function gi_getNewItemsNext(a, b, c) {
    return a.slice(c, b.items.visible + c);
  }
  function sz_storeMargin(a, b, c) {
    b.usePadding &&
      (is_string(c) || (c = "_cfs_origCssMargin"),
      a.each(function () {
        var a = $(this),
          d = parseInt(a.css(b.d.marginRight), 10);
        is_number(d) || (d = 0), a.data(c, d);
      }));
  }
  function sz_resetMargin(a, b, c) {
    if (b.usePadding) {
      var d = is_boolean(c) ? c : !1;
      is_number(c) || (c = 0),
        sz_storeMargin(a, b, "_cfs_tempCssMargin"),
        a.each(function () {
          var a = $(this);
          a.css(
            b.d.marginRight,
            d ? a.data("_cfs_tempCssMargin") : c + a.data("_cfs_origCssMargin")
          );
        });
    }
  }
  function sz_storeOrigCss(a) {
    a.each(function () {
      var a = $(this);
      a.data("_cfs_origCss", a.attr("style") || "");
    });
  }
  function sz_restoreOrigCss(a) {
    a.each(function () {
      var a = $(this);
      a.attr("style", a.data("_cfs_origCss") || "");
    });
  }
  function sz_setResponsiveSizes(a, b) {
    var d = (a.items.visible, a.items[a.d.width]),
      e = a[a.d.height],
      f = is_percentage(e);
    b.each(function () {
      var b = $(this),
        c = d - ms_getPaddingBorderMargin(b, a, "Width");
      b[a.d.width](c), f && b[a.d.height](ms_getPercentage(c, e));
    });
  }
  function sz_setSizes(a, b) {
    var c = a.parent(),
      d = a.children(),
      e = gi_getCurrentItems(d, b),
      f = cf_mapWrapperSizes(ms_getSizes(e, b, !0), b, !1);
    if ((c.css(f), b.usePadding)) {
      var g = b.padding,
        h = g[b.d[1]];
      b.align && 0 > h && (h = 0);
      var i = e.last();
      i.css(b.d.marginRight, i.data("_cfs_origCssMargin") + h),
        a.css(b.d.top, g[b.d[0]]),
        a.css(b.d.left, g[b.d[3]]);
    }
    return (
      a.css(b.d.width, f[b.d.width] + 2 * ms_getTotalSize(d, b, "width")),
      a.css(b.d.height, ms_getLargestSize(d, b, "height")),
      f
    );
  }
  function ms_getSizes(a, b, c) {
    return [
      ms_getTotalSize(a, b, "width", c),
      ms_getLargestSize(a, b, "height", c),
    ];
  }
  function ms_getLargestSize(a, b, c, d) {
    return (
      is_boolean(d) || (d = !1),
      is_number(b[b.d[c]]) && d
        ? b[b.d[c]]
        : is_number(b.items[b.d[c]])
        ? b.items[b.d[c]]
        : ((c =
            c.toLowerCase().indexOf("width") > -1
              ? "outerWidth"
              : "outerHeight"),
          ms_getTrueLargestSize(a, b, c))
    );
  }
  function ms_getTrueLargestSize(a, b, c) {
    for (var d = 0, e = 0, f = a.length; f > e; e++) {
      var g = a.eq(e),
        h = g.is(":visible") ? g[b.d[c]](!0) : 0;
      h > d && (d = h);
    }
    return d;
  }
  function ms_getTotalSize(a, b, c, d) {
    if ((is_boolean(d) || (d = !1), is_number(b[b.d[c]]) && d))
      return b[b.d[c]];
    if (is_number(b.items[b.d[c]])) return b.items[b.d[c]] * a.length;
    for (
      var e =
          c.toLowerCase().indexOf("width") > -1 ? "outerWidth" : "outerHeight",
        f = 0,
        g = 0,
        h = a.length;
      h > g;
      g++
    ) {
      var i = a.eq(g);
      f += i.is(":visible") ? i[b.d[e]](!0) : 0;
    }
    return f;
  }
  function ms_getParentSize(a, b, c) {
    var d = a.is(":visible");
    d && a.hide();
    var e = a.parent()[b.d[c]]();
    return d && a.show(), e;
  }
  function ms_getMaxDimension(a, b) {
    return is_number(a[a.d.width]) ? a[a.d.width] : b;
  }
  function ms_hasVariableSizes(a, b, c) {
    for (var d = !1, e = !1, f = 0, g = a.length; g > f; f++) {
      var h = a.eq(f),
        i = h.is(":visible") ? h[b.d[c]](!0) : 0;
      d === !1 ? (d = i) : d != i && (e = !0), 0 == d && (e = !0);
    }
    return e;
  }
  function ms_getPaddingBorderMargin(a, b, c) {
    return a[b.d["outer" + c]](!0) - a[b.d[c.toLowerCase()]]();
  }
  function ms_getPercentage(a, b) {
    if (is_percentage(b)) {
      if (((b = parseInt(b.slice(0, -1), 10)), !is_number(b))) return a;
      a *= b / 100;
    }
    return a;
  }
  function cf_e(a, b, c, d, e) {
    return (
      is_boolean(c) || (c = !0),
      is_boolean(d) || (d = !0),
      is_boolean(e) || (e = !1),
      c && (a = b.events.prefix + a),
      d && (a = a + "." + b.events.namespace),
      d && e && (a += b.serialNumber),
      a
    );
  }
  function cf_c(a, b) {
    return is_string(b.classnames[a]) ? b.classnames[a] : a;
  }
  function cf_mapWrapperSizes(a, b, c) {
    is_boolean(c) || (c = !0);
    var d = b.usePadding && c ? b.padding : [0, 0, 0, 0],
      e = {};
    return (
      (e[b.d.width] = a[0] + d[1] + d[3]),
      (e[b.d.height] = a[1] + d[0] + d[2]),
      e
    );
  }
  function cf_sortParams(a, b) {
    for (var c = [], d = 0, e = a.length; e > d; d++)
      for (var f = 0, g = b.length; g > f; f++)
        if (b[f].indexOf(typeof a[d]) > -1 && is_undefined(c[f])) {
          c[f] = a[d];
          break;
        }
    return c;
  }
  function cf_getPadding(a) {
    if (is_undefined(a)) return [0, 0, 0, 0];
    if (is_number(a)) return [a, a, a, a];
    if (
      (is_string(a) &&
        (a = a.split("px").join("").split("em").join("").split(" ")),
      !is_array(a))
    )
      return [0, 0, 0, 0];
    for (var b = 0; 4 > b; b++) a[b] = parseInt(a[b], 10);
    switch (a.length) {
      case 0:
        return [0, 0, 0, 0];
      case 1:
        return [a[0], a[0], a[0], a[0]];
      case 2:
        return [a[0], a[1], a[0], a[1]];
      case 3:
        return [a[0], a[1], a[2], a[1]];
      default:
        return [a[0], a[1], a[2], a[3]];
    }
  }
  function cf_getAlignPadding(a, b) {
    var c = is_number(b[b.d.width])
      ? Math.ceil(b[b.d.width] - ms_getTotalSize(a, b, "width"))
      : 0;
    switch (b.align) {
      case "left":
        return [0, c];
      case "right":
        return [c, 0];
      case "center":
      default:
        return [Math.ceil(c / 2), Math.floor(c / 2)];
    }
  }
  function cf_getDimensions(a) {
    for (
      var b = [
          [
            "width",
            "innerWidth",
            "outerWidth",
            "height",
            "innerHeight",
            "outerHeight",
            "left",
            "top",
            "marginRight",
            0,
            1,
            2,
            3,
          ],
          [
            "height",
            "innerHeight",
            "outerHeight",
            "width",
            "innerWidth",
            "outerWidth",
            "top",
            "left",
            "marginBottom",
            3,
            2,
            1,
            0,
          ],
        ],
        c = b[0].length,
        d = "right" == a.direction || "left" == a.direction ? 0 : 1,
        e = {},
        f = 0;
      c > f;
      f++
    )
      e[b[0][f]] = b[d][f];
    return e;
  }
  function cf_getAdjust(a, b, c, d) {
    var e = a;
    if (is_function(c)) e = c.call(d, e);
    else if (is_string(c)) {
      var f = c.split("+"),
        g = c.split("-");
      if (g.length > f.length)
        var h = !0,
          i = g[0],
          j = g[1];
      else
        var h = !1,
          i = f[0],
          j = f[1];
      switch (i) {
        case "even":
          e = 1 == a % 2 ? a - 1 : a;
          break;
        case "odd":
          e = 0 == a % 2 ? a - 1 : a;
          break;
        default:
          e = a;
      }
      (j = parseInt(j, 10)), is_number(j) && (h && (j = -j), (e += j));
    }
    return (!is_number(e) || 1 > e) && (e = 1), e;
  }
  function cf_getItemsAdjust(a, b, c, d) {
    return cf_getItemAdjustMinMax(
      cf_getAdjust(a, b, c, d),
      b.items.visibleConf
    );
  }
  function cf_getItemAdjustMinMax(a, b) {
    return (
      is_number(b.min) && b.min > a && (a = b.min),
      is_number(b.max) && a > b.max && (a = b.max),
      1 > a && (a = 1),
      a
    );
  }
  function cf_getSynchArr(a) {
    is_array(a) || (a = [[a]]), is_array(a[0]) || (a = [a]);
    for (var b = 0, c = a.length; c > b; b++)
      is_string(a[b][0]) && (a[b][0] = $(a[b][0])),
        is_boolean(a[b][1]) || (a[b][1] = !0),
        is_boolean(a[b][2]) || (a[b][2] = !0),
        is_number(a[b][3]) || (a[b][3] = 0);
    return a;
  }
  function cf_getKeyCode(a) {
    return "right" == a
      ? 39
      : "left" == a
      ? 37
      : "up" == a
      ? 38
      : "down" == a
      ? 40
      : -1;
  }
  function cf_setCookie(a, b, c) {
    if (a) {
      var d = b.triggerHandler(cf_e("currentPosition", c));
      $.fn.carouFredSel.cookie.set(a, d);
    }
  }
  function cf_getCookie(a) {
    var b = $.fn.carouFredSel.cookie.get(a);
    return "" == b ? 0 : b;
  }
  function in_mapCss(a, b) {
    for (var c = {}, d = 0, e = b.length; e > d; d++) c[b[d]] = a.css(b[d]);
    return c;
  }
  function in_complementItems(a, b, c, d) {
    return (
      is_object(a.visibleConf) || (a.visibleConf = {}),
      is_object(a.sizesConf) || (a.sizesConf = {}),
      0 == a.start && is_number(d) && (a.start = d),
      is_object(a.visible)
        ? ((a.visibleConf.min = a.visible.min),
          (a.visibleConf.max = a.visible.max),
          (a.visible = !1))
        : is_string(a.visible)
        ? ("variable" == a.visible
            ? (a.visibleConf.variable = !0)
            : (a.visibleConf.adjust = a.visible),
          (a.visible = !1))
        : is_function(a.visible) &&
          ((a.visibleConf.adjust = a.visible), (a.visible = !1)),
      is_string(a.filter) ||
        (a.filter = c.filter(":hidden").length > 0 ? ":visible" : "*"),
      a[b.d.width] ||
        (b.responsive
          ? (debug(!0, "Set a " + b.d.width + " for the items!"),
            (a[b.d.width] = ms_getTrueLargestSize(c, b, "outerWidth")))
          : (a[b.d.width] = ms_hasVariableSizes(c, b, "outerWidth")
              ? "variable"
              : c[b.d.outerWidth](!0))),
      a[b.d.height] ||
        (a[b.d.height] = ms_hasVariableSizes(c, b, "outerHeight")
          ? "variable"
          : c[b.d.outerHeight](!0)),
      (a.sizesConf.width = a.width),
      (a.sizesConf.height = a.height),
      a
    );
  }
  function in_complementVisibleItems(a, b) {
    return (
      "variable" == a.items[a.d.width] && (a.items.visibleConf.variable = !0),
      a.items.visibleConf.variable ||
        (is_number(a[a.d.width])
          ? (a.items.visible = Math.floor(a[a.d.width] / a.items[a.d.width]))
          : ((a.items.visible = Math.floor(b / a.items[a.d.width])),
            (a[a.d.width] = a.items.visible * a.items[a.d.width]),
            a.items.visibleConf.adjust || (a.align = !1)),
        ("Infinity" == a.items.visible || 1 > a.items.visible) &&
          (debug(!0, 'Not a valid number of visible items: Set to "variable".'),
          (a.items.visibleConf.variable = !0))),
      a
    );
  }
  function in_complementPrimarySize(a, b, c) {
    return "auto" == a && (a = ms_getTrueLargestSize(c, b, "outerWidth")), a;
  }
  function in_complementSecondarySize(a, b, c) {
    return (
      "auto" == a && (a = ms_getTrueLargestSize(c, b, "outerHeight")),
      a || (a = b.items[b.d.height]),
      a
    );
  }
  function in_getAlignPadding(a, b) {
    var c = cf_getAlignPadding(gi_getCurrentItems(b, a), a);
    return (a.padding[a.d[1]] = c[1]), (a.padding[a.d[3]] = c[0]), a;
  }
  function in_getResponsiveValues(a, b) {
    var d = cf_getItemAdjustMinMax(
      Math.ceil(a[a.d.width] / a.items[a.d.width]),
      a.items.visibleConf
    );
    d > b.length && (d = b.length);
    var e = Math.floor(a[a.d.width] / d);
    return (
      (a.items.visible = d), (a.items[a.d.width] = e), (a[a.d.width] = d * e), a
    );
  }
  function bt_pauseOnHoverConfig(a) {
    if (is_string(a))
      var b = a.indexOf("immediate") > -1 ? !0 : !1,
        c = a.indexOf("resume") > -1 ? !0 : !1;
    else var b = (c = !1);
    return [b, c];
  }
  function bt_mousesheelNumber(a) {
    return is_number(a) ? a : null;
  }
  function is_null(a) {
    return null === a;
  }
  function is_undefined(a) {
    return is_null(a) || a === void 0 || "" === a || "undefined" === a;
  }
  function is_array(a) {
    return a instanceof Array;
  }
  function is_jquery(a) {
    return a instanceof jQuery;
  }
  function is_object(a) {
    return (
      (a instanceof Object || "object" == typeof a) &&
      !is_null(a) &&
      !is_jquery(a) &&
      !is_array(a) &&
      !is_function(a)
    );
  }
  function is_number(a) {
    return (a instanceof Number || "number" == typeof a) && !isNaN(a);
  }
  function is_string(a) {
    return (
      (a instanceof String || "string" == typeof a) &&
      !is_undefined(a) &&
      !is_true(a) &&
      !is_false(a)
    );
  }
  function is_function(a) {
    return a instanceof Function || "function" == typeof a;
  }
  function is_boolean(a) {
    return (
      a instanceof Boolean || "boolean" == typeof a || is_true(a) || is_false(a)
    );
  }
  function is_true(a) {
    return a === !0 || "true" === a;
  }
  function is_false(a) {
    return a === !1 || "false" === a;
  }
  function is_percentage(a) {
    return is_string(a) && "%" == a.slice(-1);
  }
  function getTime() {
    return new Date().getTime();
  }
  function deprecated(a, b) {
    debug(
      !0,
      a +
        " is DEPRECATED, support for it will be removed. Use " +
        b +
        " instead."
    );
  }
  function debug(a, b) {
    if (!is_undefined(window.console) && !is_undefined(window.console.log)) {
      if (is_object(a)) {
        var c = " (" + a.selector + ")";
        a = a.debug;
      } else var c = "";
      if (!a) return !1;
      (b = is_string(b)
        ? "carouFredSel" + c + ": " + b
        : ["carouFredSel" + c + ":", b]),
        window.console.log(b);
    }
    return !1;
  }
  $.fn.carouFredSel ||
    (($.fn.caroufredsel = $.fn.carouFredSel =
      function (options, configs) {
        if (0 == this.length)
          return (
            debug(!0, 'No element found for "' + this.selector + '".'), this
          );
        if (this.length > 1)
          return this.each(function () {
            $(this).carouFredSel(options, configs);
          });
        var $cfs = this,
          $tt0 = this[0],
          starting_position = !1;
        $cfs.data("_cfs_isCarousel") &&
          ((starting_position = $cfs.triggerHandler(
            "_cfs_triggerEvent",
            "currentPosition"
          )),
          $cfs.trigger("_cfs_triggerEvent", ["destroy", !0]));
        var FN = {};
        (FN._init = function (a, b, c) {
          (a = go_getObject($tt0, a)),
            (a.items = go_getItemsObject($tt0, a.items)),
            (a.scroll = go_getScrollObject($tt0, a.scroll)),
            (a.auto = go_getAutoObject($tt0, a.auto)),
            (a.prev = go_getPrevNextObject($tt0, a.prev)),
            (a.next = go_getPrevNextObject($tt0, a.next)),
            (a.pagination = go_getPaginationObject($tt0, a.pagination)),
            (a.swipe = go_getSwipeObject($tt0, a.swipe)),
            (a.mousewheel = go_getMousewheelObject($tt0, a.mousewheel)),
            b && (opts_orig = $.extend(!0, {}, $.fn.carouFredSel.defaults, a)),
            (opts = $.extend(!0, {}, $.fn.carouFredSel.defaults, a)),
            (opts.d = cf_getDimensions(opts)),
            (crsl.direction =
              "up" == opts.direction || "left" == opts.direction
                ? "next"
                : "prev");
          var d = $cfs.children(),
            e = ms_getParentSize($wrp, opts, "width");
          if (
            (is_true(opts.cookie) &&
              (opts.cookie = "caroufredsel_cookie_" + conf.serialNumber),
            (opts.maxDimension = ms_getMaxDimension(opts, e)),
            (opts.items = in_complementItems(opts.items, opts, d, c)),
            (opts[opts.d.width] = in_complementPrimarySize(
              opts[opts.d.width],
              opts,
              d
            )),
            (opts[opts.d.height] = in_complementSecondarySize(
              opts[opts.d.height],
              opts,
              d
            )),
            opts.responsive &&
              (is_percentage(opts[opts.d.width]) ||
                (opts[opts.d.width] = "100%")),
            is_percentage(opts[opts.d.width]) &&
              ((crsl.upDateOnWindowResize = !0),
              (crsl.primarySizePercentage = opts[opts.d.width]),
              (opts[opts.d.width] = ms_getPercentage(
                e,
                crsl.primarySizePercentage
              )),
              opts.items.visible || (opts.items.visibleConf.variable = !0)),
            opts.responsive
              ? ((opts.usePadding = !1),
                (opts.padding = [0, 0, 0, 0]),
                (opts.align = !1),
                (opts.items.visibleConf.variable = !1))
              : (opts.items.visible ||
                  (opts = in_complementVisibleItems(opts, e)),
                opts[opts.d.width] ||
                  (!opts.items.visibleConf.variable &&
                  is_number(opts.items[opts.d.width]) &&
                  "*" == opts.items.filter
                    ? ((opts[opts.d.width] =
                        opts.items.visible * opts.items[opts.d.width]),
                      (opts.align = !1))
                    : (opts[opts.d.width] = "variable")),
                is_undefined(opts.align) &&
                  (opts.align = is_number(opts[opts.d.width]) ? "center" : !1),
                opts.items.visibleConf.variable &&
                  (opts.items.visible = gn_getVisibleItemsNext(d, opts, 0))),
            "*" == opts.items.filter ||
              opts.items.visibleConf.variable ||
              ((opts.items.visibleConf.org = opts.items.visible),
              (opts.items.visible = gn_getVisibleItemsNextFilter(d, opts, 0))),
            (opts.items.visible = cf_getItemsAdjust(
              opts.items.visible,
              opts,
              opts.items.visibleConf.adjust,
              $tt0
            )),
            (opts.items.visibleConf.old = opts.items.visible),
            opts.responsive)
          )
            opts.items.visibleConf.min ||
              (opts.items.visibleConf.min = opts.items.visible),
              opts.items.visibleConf.max ||
                (opts.items.visibleConf.max = opts.items.visible),
              (opts = in_getResponsiveValues(opts, d, e));
          else
            switch (
              ((opts.padding = cf_getPadding(opts.padding)),
              "top" == opts.align
                ? (opts.align = "left")
                : "bottom" == opts.align && (opts.align = "right"),
              opts.align)
            ) {
              case "center":
              case "left":
              case "right":
                "variable" != opts[opts.d.width] &&
                  ((opts = in_getAlignPadding(opts, d)),
                  (opts.usePadding = !0));
                break;
              default:
                (opts.align = !1),
                  (opts.usePadding =
                    0 == opts.padding[0] &&
                    0 == opts.padding[1] &&
                    0 == opts.padding[2] &&
                    0 == opts.padding[3]
                      ? !1
                      : !0);
            }
          is_number(opts.scroll.duration) || (opts.scroll.duration = 500),
            is_undefined(opts.scroll.items) &&
              (opts.scroll.items =
                opts.responsive ||
                opts.items.visibleConf.variable ||
                "*" != opts.items.filter
                  ? "visible"
                  : opts.items.visible),
            (opts.auto = $.extend(!0, {}, opts.scroll, opts.auto)),
            (opts.prev = $.extend(!0, {}, opts.scroll, opts.prev)),
            (opts.next = $.extend(!0, {}, opts.scroll, opts.next)),
            (opts.pagination = $.extend(!0, {}, opts.scroll, opts.pagination)),
            (opts.auto = go_complementAutoObject($tt0, opts.auto)),
            (opts.prev = go_complementPrevNextObject($tt0, opts.prev)),
            (opts.next = go_complementPrevNextObject($tt0, opts.next)),
            (opts.pagination = go_complementPaginationObject(
              $tt0,
              opts.pagination
            )),
            (opts.swipe = go_complementSwipeObject($tt0, opts.swipe)),
            (opts.mousewheel = go_complementMousewheelObject(
              $tt0,
              opts.mousewheel
            )),
            opts.synchronise &&
              (opts.synchronise = cf_getSynchArr(opts.synchronise)),
            opts.auto.onPauseStart &&
              ((opts.auto.onTimeoutStart = opts.auto.onPauseStart),
              deprecated("auto.onPauseStart", "auto.onTimeoutStart")),
            opts.auto.onPausePause &&
              ((opts.auto.onTimeoutPause = opts.auto.onPausePause),
              deprecated("auto.onPausePause", "auto.onTimeoutPause")),
            opts.auto.onPauseEnd &&
              ((opts.auto.onTimeoutEnd = opts.auto.onPauseEnd),
              deprecated("auto.onPauseEnd", "auto.onTimeoutEnd")),
            opts.auto.pauseDuration &&
              ((opts.auto.timeoutDuration = opts.auto.pauseDuration),
              deprecated("auto.pauseDuration", "auto.timeoutDuration"));
        }),
          (FN._build = function () {
            $cfs.data("_cfs_isCarousel", !0);
            var a = $cfs.children(),
              b = in_mapCss($cfs, [
                "textAlign",
                "float",
                "position",
                "top",
                "right",
                "bottom",
                "left",
                "zIndex",
                "width",
                "height",
                "marginTop",
                "marginRight",
                "marginBottom",
                "marginLeft",
              ]),
              c = "relative";
            switch (b.position) {
              case "absolute":
              case "fixed":
                c = b.position;
            }
            "parent" == conf.wrapper ? sz_storeOrigCss($wrp) : $wrp.css(b),
              $wrp.css({ overflow: "hidden", position: c }),
              sz_storeOrigCss($cfs),
              $cfs.data("_cfs_origCssZindex", b.zIndex),
              $cfs.css({
                textAlign: "left",
                float: "none",
                position: "absolute",
                top: 0,
                right: "auto",
                bottom: "auto",
                left: 0,
                marginTop: 0,
                marginRight: 0,
                marginBottom: 0,
                marginLeft: 0,
              }),
              sz_storeMargin(a, opts),
              sz_storeOrigCss(a),
              opts.responsive && sz_setResponsiveSizes(opts, a);
          }),
          (FN._bind_events = function () {
            FN._unbind_events(),
              $cfs.bind(cf_e("stop", conf), function (a, b) {
                return (
                  a.stopPropagation(),
                  crsl.isStopped ||
                    (opts.auto.button &&
                      opts.auto.button.addClass(cf_c("stopped", conf))),
                  (crsl.isStopped = !0),
                  opts.auto.play &&
                    ((opts.auto.play = !1),
                    $cfs.trigger(cf_e("pause", conf), b)),
                  !0
                );
              }),
              $cfs.bind(cf_e("finish", conf), function (a) {
                return (
                  a.stopPropagation(),
                  crsl.isScrolling && sc_stopScroll(scrl),
                  !0
                );
              }),
              $cfs.bind(cf_e("pause", conf), function (a, b, c) {
                if (
                  (a.stopPropagation(),
                  (tmrs = sc_clearTimers(tmrs)),
                  b && crsl.isScrolling)
                ) {
                  scrl.isStopped = !0;
                  var d = getTime() - scrl.startTime;
                  (scrl.duration -= d),
                    scrl.pre && (scrl.pre.duration -= d),
                    scrl.post && (scrl.post.duration -= d),
                    sc_stopScroll(scrl, !1);
                }
                if (
                  (crsl.isPaused ||
                    crsl.isScrolling ||
                    (c && (tmrs.timePassed += getTime() - tmrs.startTime)),
                  crsl.isPaused ||
                    (opts.auto.button &&
                      opts.auto.button.addClass(cf_c("paused", conf))),
                  (crsl.isPaused = !0),
                  opts.auto.onTimeoutPause)
                ) {
                  var e = opts.auto.timeoutDuration - tmrs.timePassed,
                    f = 100 - Math.ceil((100 * e) / opts.auto.timeoutDuration);
                  opts.auto.onTimeoutPause.call($tt0, f, e);
                }
                return !0;
              }),
              $cfs.bind(cf_e("play", conf), function (a, b, c, d) {
                a.stopPropagation(), (tmrs = sc_clearTimers(tmrs));
                var e = [b, c, d],
                  f = ["string", "number", "boolean"],
                  g = cf_sortParams(e, f);
                if (
                  ((b = g[0]),
                  (c = g[1]),
                  (d = g[2]),
                  "prev" != b && "next" != b && (b = crsl.direction),
                  is_number(c) || (c = 0),
                  is_boolean(d) || (d = !1),
                  d && ((crsl.isStopped = !1), (opts.auto.play = !0)),
                  !opts.auto.play)
                )
                  return (
                    a.stopImmediatePropagation(),
                    debug(conf, "Carousel stopped: Not scrolling.")
                  );
                crsl.isPaused &&
                  opts.auto.button &&
                  (opts.auto.button.removeClass(cf_c("stopped", conf)),
                  opts.auto.button.removeClass(cf_c("paused", conf))),
                  (crsl.isPaused = !1),
                  (tmrs.startTime = getTime());
                var h = opts.auto.timeoutDuration + c;
                return (
                  (dur2 = h - tmrs.timePassed),
                  (perc = 100 - Math.ceil((100 * dur2) / h)),
                  opts.auto.progress &&
                    (tmrs.progress = setInterval(function () {
                      var a = getTime() - tmrs.startTime + tmrs.timePassed,
                        b = Math.ceil((100 * a) / h);
                      opts.auto.progress.updater.call(
                        opts.auto.progress.bar[0],
                        b
                      );
                    }, opts.auto.progress.interval)),
                  (tmrs.auto = setTimeout(function () {
                    opts.auto.progress &&
                      opts.auto.progress.updater.call(
                        opts.auto.progress.bar[0],
                        100
                      ),
                      opts.auto.onTimeoutEnd &&
                        opts.auto.onTimeoutEnd.call($tt0, perc, dur2),
                      crsl.isScrolling
                        ? $cfs.trigger(cf_e("play", conf), b)
                        : $cfs.trigger(cf_e(b, conf), opts.auto);
                  }, dur2)),
                  opts.auto.onTimeoutStart &&
                    opts.auto.onTimeoutStart.call($tt0, perc, dur2),
                  !0
                );
              }),
              $cfs.bind(cf_e("resume", conf), function (a) {
                return (
                  a.stopPropagation(),
                  scrl.isStopped
                    ? ((scrl.isStopped = !1),
                      (crsl.isPaused = !1),
                      (crsl.isScrolling = !0),
                      (scrl.startTime = getTime()),
                      sc_startScroll(scrl, conf))
                    : $cfs.trigger(cf_e("play", conf)),
                  !0
                );
              }),
              $cfs.bind(
                cf_e("prev", conf) + " " + cf_e("next", conf),
                function (a, b, c, d, e) {
                  if (
                    (a.stopPropagation(), crsl.isStopped || $cfs.is(":hidden"))
                  )
                    return (
                      a.stopImmediatePropagation(),
                      debug(conf, "Carousel stopped or hidden: Not scrolling.")
                    );
                  var f = is_number(opts.items.minimum)
                    ? opts.items.minimum
                    : opts.items.visible + 1;
                  if (f > itms.total)
                    return (
                      a.stopImmediatePropagation(),
                      debug(
                        conf,
                        "Not enough items (" +
                          itms.total +
                          " total, " +
                          f +
                          " needed): Not scrolling."
                      )
                    );
                  var g = [b, c, d, e],
                    h = ["object", "number/string", "function", "boolean"],
                    i = cf_sortParams(g, h);
                  (b = i[0]), (c = i[1]), (d = i[2]), (e = i[3]);
                  var j = a.type.slice(conf.events.prefix.length);
                  if (
                    (is_object(b) || (b = {}),
                    is_function(d) && (b.onAfter = d),
                    is_boolean(e) && (b.queue = e),
                    (b = $.extend(!0, {}, opts[j], b)),
                    b.conditions && !b.conditions.call($tt0, j))
                  )
                    return (
                      a.stopImmediatePropagation(),
                      debug(conf, 'Callback "conditions" returned false.')
                    );
                  if (!is_number(c)) {
                    if ("*" != opts.items.filter) c = "visible";
                    else
                      for (
                        var k = [c, b.items, opts[j].items],
                          i = 0,
                          l = k.length;
                        l > i;
                        i++
                      )
                        if (
                          is_number(k[i]) ||
                          "page" == k[i] ||
                          "visible" == k[i]
                        ) {
                          c = k[i];
                          break;
                        }
                    switch (c) {
                      case "page":
                        return (
                          a.stopImmediatePropagation(),
                          $cfs.triggerHandler(cf_e(j + "Page", conf), [b, d])
                        );
                      case "visible":
                        opts.items.visibleConf.variable ||
                          "*" != opts.items.filter ||
                          (c = opts.items.visible);
                    }
                  }
                  if (scrl.isStopped)
                    return (
                      $cfs.trigger(cf_e("resume", conf)),
                      $cfs.trigger(cf_e("queue", conf), [j, [b, c, d]]),
                      a.stopImmediatePropagation(),
                      debug(conf, "Carousel resumed scrolling.")
                    );
                  if (b.duration > 0 && crsl.isScrolling)
                    return (
                      b.queue &&
                        ("last" == b.queue && (queu = []),
                        ("first" != b.queue || 0 == queu.length) &&
                          $cfs.trigger(cf_e("queue", conf), [j, [b, c, d]])),
                      a.stopImmediatePropagation(),
                      debug(conf, "Carousel currently scrolling.")
                    );
                  if (
                    ((tmrs.timePassed = 0),
                    $cfs.trigger(cf_e("slide_" + j, conf), [b, c]),
                    opts.synchronise)
                  )
                    for (
                      var m = opts.synchronise, n = [b, c], o = 0, l = m.length;
                      l > o;
                      o++
                    ) {
                      var p = j;
                      m[o][2] || (p = "prev" == p ? "next" : "prev"),
                        m[o][1] ||
                          (n[0] = m[o][0].triggerHandler("_cfs_triggerEvent", [
                            "configuration",
                            p,
                          ])),
                        (n[1] = c + m[o][3]),
                        m[o][0].trigger("_cfs_triggerEvent", ["slide_" + p, n]);
                    }
                  return !0;
                }
              ),
              $cfs.bind(cf_e("slide_prev", conf), function (a, b, c) {
                a.stopPropagation();
                var d = $cfs.children();
                if (!opts.circular && 0 == itms.first)
                  return (
                    opts.infinite &&
                      $cfs.trigger(cf_e("next", conf), itms.total - 1),
                    a.stopImmediatePropagation()
                  );
                if ((sz_resetMargin(d, opts), !is_number(c))) {
                  if (opts.items.visibleConf.variable)
                    c = gn_getVisibleItemsPrev(d, opts, itms.total - 1);
                  else if ("*" != opts.items.filter) {
                    var e = is_number(b.items)
                      ? b.items
                      : gn_getVisibleOrg($cfs, opts);
                    c = gn_getScrollItemsPrevFilter(d, opts, itms.total - 1, e);
                  } else c = opts.items.visible;
                  c = cf_getAdjust(c, opts, b.items, $tt0);
                }
                if (
                  (opts.circular ||
                    (itms.total - c < itms.first &&
                      (c = itms.total - itms.first)),
                  (opts.items.visibleConf.old = opts.items.visible),
                  opts.items.visibleConf.variable)
                ) {
                  var f = cf_getItemsAdjust(
                    gn_getVisibleItemsNext(d, opts, itms.total - c),
                    opts,
                    opts.items.visibleConf.adjust,
                    $tt0
                  );
                  f >= opts.items.visible + c &&
                    itms.total > c &&
                    (c++,
                    (f = cf_getItemsAdjust(
                      gn_getVisibleItemsNext(d, opts, itms.total - c),
                      opts,
                      opts.items.visibleConf.adjust,
                      $tt0
                    ))),
                    (opts.items.visible = f);
                } else if ("*" != opts.items.filter) {
                  var f = gn_getVisibleItemsNextFilter(d, opts, itms.total - c);
                  opts.items.visible = cf_getItemsAdjust(
                    f,
                    opts,
                    opts.items.visibleConf.adjust,
                    $tt0
                  );
                }
                if ((sz_resetMargin(d, opts, !0), 0 == c))
                  return (
                    a.stopImmediatePropagation(),
                    debug(conf, "0 items to scroll: Not scrolling.")
                  );
                for (
                  debug(conf, "Scrolling " + c + " items backward."),
                    itms.first += c;
                  itms.first >= itms.total;

                )
                  itms.first -= itms.total;
                opts.circular ||
                  (0 == itms.first && b.onEnd && b.onEnd.call($tt0, "prev"),
                  opts.infinite || nv_enableNavi(opts, itms.first, conf)),
                  $cfs
                    .children()
                    .slice(itms.total - c, itms.total)
                    .prependTo($cfs),
                  itms.total < opts.items.visible + c &&
                    $cfs
                      .children()
                      .slice(0, opts.items.visible + c - itms.total)
                      .clone(!0)
                      .appendTo($cfs);
                var d = $cfs.children(),
                  g = gi_getOldItemsPrev(d, opts, c),
                  h = gi_getNewItemsPrev(d, opts),
                  i = d.eq(c - 1),
                  j = g.last(),
                  k = h.last();
                sz_resetMargin(d, opts);
                var l = 0,
                  m = 0;
                if (opts.align) {
                  var n = cf_getAlignPadding(h, opts);
                  (l = n[0]), (m = n[1]);
                }
                var o = 0 > l ? opts.padding[opts.d[3]] : 0,
                  p = !1,
                  q = $();
                if (
                  c > opts.items.visible &&
                  ((q = d.slice(opts.items.visibleConf.old, c)),
                  "directscroll" == b.fx)
                ) {
                  var r = opts.items[opts.d.width];
                  (p = q),
                    (i = k),
                    sc_hideHiddenItems(p),
                    (opts.items[opts.d.width] = "variable");
                }
                var s = !1,
                  t = ms_getTotalSize(d.slice(0, c), opts, "width"),
                  u = cf_mapWrapperSizes(
                    ms_getSizes(h, opts, !0),
                    opts,
                    !opts.usePadding
                  ),
                  v = 0,
                  w = {},
                  x = {},
                  y = {},
                  z = {},
                  A = {},
                  B = {},
                  C = {},
                  D = sc_getDuration(b, opts, c, t);
                switch (b.fx) {
                  case "cover":
                  case "cover-fade":
                    v = ms_getTotalSize(
                      d.slice(0, opts.items.visible),
                      opts,
                      "width"
                    );
                }
                p && (opts.items[opts.d.width] = r),
                  sz_resetMargin(d, opts, !0),
                  m >= 0 && sz_resetMargin(j, opts, opts.padding[opts.d[1]]),
                  l >= 0 && sz_resetMargin(i, opts, opts.padding[opts.d[3]]),
                  opts.align &&
                    ((opts.padding[opts.d[1]] = m),
                    (opts.padding[opts.d[3]] = l)),
                  (B[opts.d.left] = -(t - o)),
                  (C[opts.d.left] = -(v - o)),
                  (x[opts.d.left] = u[opts.d.width]);
                var E = function () {},
                  F = function () {},
                  G = function () {},
                  H = function () {},
                  I = function () {},
                  J = function () {},
                  K = function () {},
                  L = function () {},
                  M = function () {},
                  N = function () {},
                  O = function () {};
                switch (b.fx) {
                  case "crossfade":
                  case "cover":
                  case "cover-fade":
                  case "uncover":
                  case "uncover-fade":
                    s = $cfs.clone(!0).appendTo($wrp);
                }
                switch (b.fx) {
                  case "crossfade":
                  case "uncover":
                  case "uncover-fade":
                    s.children().slice(0, c).remove(),
                      s.children().slice(opts.items.visibleConf.old).remove();
                    break;
                  case "cover":
                  case "cover-fade":
                    s.children().slice(opts.items.visible).remove(), s.css(C);
                }
                if (
                  ($cfs.css(B),
                  (scrl = sc_setScroll(D, b.easing, conf)),
                  (w[opts.d.left] = opts.usePadding
                    ? opts.padding[opts.d[3]]
                    : 0),
                  ("variable" == opts[opts.d.width] ||
                    "variable" == opts[opts.d.height]) &&
                    ((E = function () {
                      $wrp.css(u);
                    }),
                    (F = function () {
                      scrl.anims.push([$wrp, u]);
                    })),
                  opts.usePadding)
                ) {
                  switch (
                    (k.not(i).length &&
                      ((y[opts.d.marginRight] = i.data("_cfs_origCssMargin")),
                      0 > l
                        ? i.css(y)
                        : ((K = function () {
                            i.css(y);
                          }),
                          (L = function () {
                            scrl.anims.push([i, y]);
                          }))),
                    b.fx)
                  ) {
                    case "cover":
                    case "cover-fade":
                      s.children()
                        .eq(c - 1)
                        .css(y);
                  }
                  k.not(j).length &&
                    ((z[opts.d.marginRight] = j.data("_cfs_origCssMargin")),
                    (G = function () {
                      j.css(z);
                    }),
                    (H = function () {
                      scrl.anims.push([j, z]);
                    })),
                    m >= 0 &&
                      ((A[opts.d.marginRight] =
                        k.data("_cfs_origCssMargin") + opts.padding[opts.d[1]]),
                      (I = function () {
                        k.css(A);
                      }),
                      (J = function () {
                        scrl.anims.push([k, A]);
                      }));
                }
                O = function () {
                  $cfs.css(w);
                };
                var P = opts.items.visible + c - itms.total;
                N = function () {
                  if (
                    (P > 0 &&
                      ($cfs.children().slice(itms.total).remove(),
                      (g = $(
                        $cfs
                          .children()
                          .slice(itms.total - (opts.items.visible - P))
                          .get()
                          .concat($cfs.children().slice(0, P).get())
                      ))),
                    sc_showHiddenItems(p),
                    opts.usePadding)
                  ) {
                    var a = $cfs.children().eq(opts.items.visible + c - 1);
                    a.css(opts.d.marginRight, a.data("_cfs_origCssMargin"));
                  }
                };
                var Q = sc_mapCallbackArguments(g, q, h, c, "prev", D, u);
                switch (
                  ((M = function () {
                    sc_afterScroll($cfs, s, b),
                      (crsl.isScrolling = !1),
                      (clbk.onAfter = sc_fireCallbacks(
                        $tt0,
                        b,
                        "onAfter",
                        Q,
                        clbk
                      )),
                      (queu = sc_fireQueue($cfs, queu, conf)),
                      crsl.isPaused || $cfs.trigger(cf_e("play", conf));
                  }),
                  (crsl.isScrolling = !0),
                  (tmrs = sc_clearTimers(tmrs)),
                  (clbk.onBefore = sc_fireCallbacks(
                    $tt0,
                    b,
                    "onBefore",
                    Q,
                    clbk
                  )),
                  b.fx)
                ) {
                  case "none":
                    $cfs.css(w), E(), G(), I(), K(), O(), N(), M();
                    break;
                  case "fade":
                    scrl.anims.push([
                      $cfs,
                      { opacity: 0 },
                      function () {
                        E(),
                          G(),
                          I(),
                          K(),
                          O(),
                          N(),
                          (scrl = sc_setScroll(D, b.easing, conf)),
                          scrl.anims.push([$cfs, { opacity: 1 }, M]),
                          sc_startScroll(scrl, conf);
                      },
                    ]);
                    break;
                  case "crossfade":
                    $cfs.css({ opacity: 0 }),
                      scrl.anims.push([s, { opacity: 0 }]),
                      scrl.anims.push([$cfs, { opacity: 1 }, M]),
                      F(),
                      G(),
                      I(),
                      K(),
                      O(),
                      N();
                    break;
                  case "cover":
                    scrl.anims.push([
                      s,
                      w,
                      function () {
                        G(), I(), K(), O(), N(), M();
                      },
                    ]),
                      F();
                    break;
                  case "cover-fade":
                    scrl.anims.push([$cfs, { opacity: 0 }]),
                      scrl.anims.push([
                        s,
                        w,
                        function () {
                          G(), I(), K(), O(), N(), M();
                        },
                      ]),
                      F();
                    break;
                  case "uncover":
                    scrl.anims.push([s, x, M]), F(), G(), I(), K(), O(), N();
                    break;
                  case "uncover-fade":
                    $cfs.css({ opacity: 0 }),
                      scrl.anims.push([$cfs, { opacity: 1 }]),
                      scrl.anims.push([s, x, M]),
                      F(),
                      G(),
                      I(),
                      K(),
                      O(),
                      N();
                    break;
                  default:
                    scrl.anims.push([
                      $cfs,
                      w,
                      function () {
                        N(), M();
                      },
                    ]),
                      F(),
                      H(),
                      J(),
                      L();
                }
                return (
                  sc_startScroll(scrl, conf),
                  cf_setCookie(opts.cookie, $cfs, conf),
                  $cfs.trigger(cf_e("updatePageStatus", conf), [!1, u]),
                  !0
                );
              }),
              $cfs.bind(cf_e("slide_next", conf), function (a, b, c) {
                a.stopPropagation();
                var d = $cfs.children();
                if (!opts.circular && itms.first == opts.items.visible)
                  return (
                    opts.infinite &&
                      $cfs.trigger(cf_e("prev", conf), itms.total - 1),
                    a.stopImmediatePropagation()
                  );
                if ((sz_resetMargin(d, opts), !is_number(c))) {
                  if ("*" != opts.items.filter) {
                    var e = is_number(b.items)
                      ? b.items
                      : gn_getVisibleOrg($cfs, opts);
                    c = gn_getScrollItemsNextFilter(d, opts, 0, e);
                  } else c = opts.items.visible;
                  c = cf_getAdjust(c, opts, b.items, $tt0);
                }
                var f = 0 == itms.first ? itms.total : itms.first;
                if (!opts.circular) {
                  if (opts.items.visibleConf.variable)
                    var g = gn_getVisibleItemsNext(d, opts, c),
                      e = gn_getVisibleItemsPrev(d, opts, f - 1);
                  else
                    var g = opts.items.visible,
                      e = opts.items.visible;
                  c + g > f && (c = f - e);
                }
                if (
                  ((opts.items.visibleConf.old = opts.items.visible),
                  opts.items.visibleConf.variable)
                ) {
                  for (
                    var g = cf_getItemsAdjust(
                      gn_getVisibleItemsNextTestCircular(d, opts, c, f),
                      opts,
                      opts.items.visibleConf.adjust,
                      $tt0
                    );
                    opts.items.visible - c >= g && itms.total > c;

                  )
                    c++,
                      (g = cf_getItemsAdjust(
                        gn_getVisibleItemsNextTestCircular(d, opts, c, f),
                        opts,
                        opts.items.visibleConf.adjust,
                        $tt0
                      ));
                  opts.items.visible = g;
                } else if ("*" != opts.items.filter) {
                  var g = gn_getVisibleItemsNextFilter(d, opts, c);
                  opts.items.visible = cf_getItemsAdjust(
                    g,
                    opts,
                    opts.items.visibleConf.adjust,
                    $tt0
                  );
                }
                if ((sz_resetMargin(d, opts, !0), 0 == c))
                  return (
                    a.stopImmediatePropagation(),
                    debug(conf, "0 items to scroll: Not scrolling.")
                  );
                for (
                  debug(conf, "Scrolling " + c + " items forward."),
                    itms.first -= c;
                  0 > itms.first;

                )
                  itms.first += itms.total;
                opts.circular ||
                  (itms.first == opts.items.visible &&
                    b.onEnd &&
                    b.onEnd.call($tt0, "next"),
                  opts.infinite || nv_enableNavi(opts, itms.first, conf)),
                  itms.total < opts.items.visible + c &&
                    $cfs
                      .children()
                      .slice(0, opts.items.visible + c - itms.total)
                      .clone(!0)
                      .appendTo($cfs);
                var d = $cfs.children(),
                  h = gi_getOldItemsNext(d, opts),
                  i = gi_getNewItemsNext(d, opts, c),
                  j = d.eq(c - 1),
                  k = h.last(),
                  l = i.last();
                sz_resetMargin(d, opts);
                var m = 0,
                  n = 0;
                if (opts.align) {
                  var o = cf_getAlignPadding(i, opts);
                  (m = o[0]), (n = o[1]);
                }
                var p = !1,
                  q = $();
                if (
                  c > opts.items.visibleConf.old &&
                  ((q = d.slice(opts.items.visibleConf.old, c)),
                  "directscroll" == b.fx)
                ) {
                  var r = opts.items[opts.d.width];
                  (p = q),
                    (j = k),
                    sc_hideHiddenItems(p),
                    (opts.items[opts.d.width] = "variable");
                }
                var s = !1,
                  t = ms_getTotalSize(d.slice(0, c), opts, "width"),
                  u = cf_mapWrapperSizes(
                    ms_getSizes(i, opts, !0),
                    opts,
                    !opts.usePadding
                  ),
                  v = 0,
                  w = {},
                  x = {},
                  y = {},
                  z = {},
                  A = {},
                  B = sc_getDuration(b, opts, c, t);
                switch (b.fx) {
                  case "uncover":
                  case "uncover-fade":
                    v = ms_getTotalSize(
                      d.slice(0, opts.items.visibleConf.old),
                      opts,
                      "width"
                    );
                }
                p && (opts.items[opts.d.width] = r),
                  opts.align &&
                    0 > opts.padding[opts.d[1]] &&
                    (opts.padding[opts.d[1]] = 0),
                  sz_resetMargin(d, opts, !0),
                  sz_resetMargin(k, opts, opts.padding[opts.d[1]]),
                  opts.align &&
                    ((opts.padding[opts.d[1]] = n),
                    (opts.padding[opts.d[3]] = m)),
                  (A[opts.d.left] = opts.usePadding
                    ? opts.padding[opts.d[3]]
                    : 0);
                var C = function () {},
                  D = function () {},
                  E = function () {},
                  F = function () {},
                  G = function () {},
                  H = function () {},
                  I = function () {},
                  J = function () {},
                  K = function () {};
                switch (b.fx) {
                  case "crossfade":
                  case "cover":
                  case "cover-fade":
                  case "uncover":
                  case "uncover-fade":
                    (s = $cfs.clone(!0).appendTo($wrp)),
                      s.children().slice(opts.items.visibleConf.old).remove();
                }
                switch (b.fx) {
                  case "crossfade":
                  case "cover":
                  case "cover-fade":
                    $cfs.css("zIndex", 1), s.css("zIndex", 0);
                }
                if (
                  ((scrl = sc_setScroll(B, b.easing, conf)),
                  (w[opts.d.left] = -t),
                  (x[opts.d.left] = -v),
                  0 > m && (w[opts.d.left] += m),
                  ("variable" == opts[opts.d.width] ||
                    "variable" == opts[opts.d.height]) &&
                    ((C = function () {
                      $wrp.css(u);
                    }),
                    (D = function () {
                      scrl.anims.push([$wrp, u]);
                    })),
                  opts.usePadding)
                ) {
                  var L = l.data("_cfs_origCssMargin");
                  n >= 0 && (L += opts.padding[opts.d[1]]),
                    l.css(opts.d.marginRight, L),
                    j.not(k).length &&
                      (z[opts.d.marginRight] = k.data("_cfs_origCssMargin")),
                    (E = function () {
                      k.css(z);
                    }),
                    (F = function () {
                      scrl.anims.push([k, z]);
                    });
                  var M = j.data("_cfs_origCssMargin");
                  m > 0 && (M += opts.padding[opts.d[3]]),
                    (y[opts.d.marginRight] = M),
                    (G = function () {
                      j.css(y);
                    }),
                    (H = function () {
                      scrl.anims.push([j, y]);
                    });
                }
                K = function () {
                  $cfs.css(A);
                };
                var N = opts.items.visible + c - itms.total;
                J = function () {
                  N > 0 && $cfs.children().slice(itms.total).remove();
                  var a = $cfs.children().slice(0, c).appendTo($cfs).last();
                  if (
                    (N > 0 && (i = gi_getCurrentItems(d, opts)),
                    sc_showHiddenItems(p),
                    opts.usePadding)
                  ) {
                    if (itms.total < opts.items.visible + c) {
                      var b = $cfs.children().eq(opts.items.visible - 1);
                      b.css(
                        opts.d.marginRight,
                        b.data("_cfs_origCssMargin") + opts.padding[opts.d[1]]
                      );
                    }
                    a.css(opts.d.marginRight, a.data("_cfs_origCssMargin"));
                  }
                };
                var O = sc_mapCallbackArguments(h, q, i, c, "next", B, u);
                switch (
                  ((I = function () {
                    $cfs.css("zIndex", $cfs.data("_cfs_origCssZindex")),
                      sc_afterScroll($cfs, s, b),
                      (crsl.isScrolling = !1),
                      (clbk.onAfter = sc_fireCallbacks(
                        $tt0,
                        b,
                        "onAfter",
                        O,
                        clbk
                      )),
                      (queu = sc_fireQueue($cfs, queu, conf)),
                      crsl.isPaused || $cfs.trigger(cf_e("play", conf));
                  }),
                  (crsl.isScrolling = !0),
                  (tmrs = sc_clearTimers(tmrs)),
                  (clbk.onBefore = sc_fireCallbacks(
                    $tt0,
                    b,
                    "onBefore",
                    O,
                    clbk
                  )),
                  b.fx)
                ) {
                  case "none":
                    $cfs.css(w), C(), E(), G(), K(), J(), I();
                    break;
                  case "fade":
                    scrl.anims.push([
                      $cfs,
                      { opacity: 0 },
                      function () {
                        C(),
                          E(),
                          G(),
                          K(),
                          J(),
                          (scrl = sc_setScroll(B, b.easing, conf)),
                          scrl.anims.push([$cfs, { opacity: 1 }, I]),
                          sc_startScroll(scrl, conf);
                      },
                    ]);
                    break;
                  case "crossfade":
                    $cfs.css({ opacity: 0 }),
                      scrl.anims.push([s, { opacity: 0 }]),
                      scrl.anims.push([$cfs, { opacity: 1 }, I]),
                      D(),
                      E(),
                      G(),
                      K(),
                      J();
                    break;
                  case "cover":
                    $cfs.css(opts.d.left, $wrp[opts.d.width]()),
                      scrl.anims.push([$cfs, A, I]),
                      D(),
                      E(),
                      G(),
                      J();
                    break;
                  case "cover-fade":
                    $cfs.css(opts.d.left, $wrp[opts.d.width]()),
                      scrl.anims.push([s, { opacity: 0 }]),
                      scrl.anims.push([$cfs, A, I]),
                      D(),
                      E(),
                      G(),
                      J();
                    break;
                  case "uncover":
                    scrl.anims.push([s, x, I]), D(), E(), G(), K(), J();
                    break;
                  case "uncover-fade":
                    $cfs.css({ opacity: 0 }),
                      scrl.anims.push([$cfs, { opacity: 1 }]),
                      scrl.anims.push([s, x, I]),
                      D(),
                      E(),
                      G(),
                      K(),
                      J();
                    break;
                  default:
                    scrl.anims.push([
                      $cfs,
                      w,
                      function () {
                        K(), J(), I();
                      },
                    ]),
                      D(),
                      F(),
                      H();
                }
                return (
                  sc_startScroll(scrl, conf),
                  cf_setCookie(opts.cookie, $cfs, conf),
                  $cfs.trigger(cf_e("updatePageStatus", conf), [!1, u]),
                  !0
                );
              }),
              $cfs.bind(cf_e("slideTo", conf), function (a, b, c, d, e, f, g) {
                a.stopPropagation();
                var h = [b, c, d, e, f, g],
                  i = [
                    "string/number/object",
                    "number",
                    "boolean",
                    "object",
                    "string",
                    "function",
                  ],
                  j = cf_sortParams(h, i);
                return (
                  (e = j[3]),
                  (f = j[4]),
                  (g = j[5]),
                  (b = gn_getItemIndex(j[0], j[1], j[2], itms, $cfs)),
                  0 == b
                    ? !1
                    : (is_object(e) || (e = !1),
                      "prev" != f &&
                        "next" != f &&
                        (f = opts.circular
                          ? itms.total / 2 >= b
                            ? "next"
                            : "prev"
                          : 0 == itms.first || itms.first > b
                          ? "next"
                          : "prev"),
                      "prev" == f && (b = itms.total - b),
                      $cfs.trigger(cf_e(f, conf), [e, b, g]),
                      !0)
                );
              }),
              $cfs.bind(cf_e("prevPage", conf), function (a, b, c) {
                a.stopPropagation();
                var d = $cfs.triggerHandler(cf_e("currentPage", conf));
                return $cfs.triggerHandler(cf_e("slideToPage", conf), [
                  d - 1,
                  b,
                  "prev",
                  c,
                ]);
              }),
              $cfs.bind(cf_e("nextPage", conf), function (a, b, c) {
                a.stopPropagation();
                var d = $cfs.triggerHandler(cf_e("currentPage", conf));
                return $cfs.triggerHandler(cf_e("slideToPage", conf), [
                  d + 1,
                  b,
                  "next",
                  c,
                ]);
              }),
              $cfs.bind(cf_e("slideToPage", conf), function (a, b, c, d, e) {
                a.stopPropagation(),
                  is_number(b) ||
                    (b = $cfs.triggerHandler(cf_e("currentPage", conf)));
                var f = opts.pagination.items || opts.items.visible,
                  g = Math.ceil(itms.total / f) - 1;
                return (
                  0 > b && (b = g),
                  b > g && (b = 0),
                  $cfs.triggerHandler(cf_e("slideTo", conf), [
                    b * f,
                    0,
                    !0,
                    c,
                    d,
                    e,
                  ])
                );
              }),
              $cfs.bind(cf_e("jumpToStart", conf), function (a, b) {
                if (
                  (a.stopPropagation(),
                  (b = b ? gn_getItemIndex(b, 0, !0, itms, $cfs) : 0),
                  (b += itms.first),
                  0 != b)
                ) {
                  if (itms.total > 0) for (; b > itms.total; ) b -= itms.total;
                  $cfs.prepend($cfs.children().slice(b, itms.total));
                }
                return !0;
              }),
              $cfs.bind(cf_e("synchronise", conf), function (a, b) {
                if ((a.stopPropagation(), b)) b = cf_getSynchArr(b);
                else {
                  if (!opts.synchronise)
                    return debug(conf, "No carousel to synchronise.");
                  b = opts.synchronise;
                }
                for (
                  var c = $cfs.triggerHandler(cf_e("currentPosition", conf)),
                    d = !0,
                    e = 0,
                    f = b.length;
                  f > e;
                  e++
                )
                  b[e][0].triggerHandler(cf_e("slideTo", conf), [
                    c,
                    b[e][3],
                    !0,
                  ]) || (d = !1);
                return d;
              }),
              $cfs.bind(cf_e("queue", conf), function (a, b, c) {
                return (
                  a.stopPropagation(),
                  is_function(b)
                    ? b.call($tt0, queu)
                    : is_array(b)
                    ? (queu = b)
                    : is_undefined(b) || queu.push([b, c]),
                  queu
                );
              }),
              $cfs.bind(cf_e("insertItem", conf), function (a, b, c, d, e) {
                a.stopPropagation();
                var f = [b, c, d, e],
                  g = [
                    "string/object",
                    "string/number/object",
                    "boolean",
                    "number",
                  ],
                  h = cf_sortParams(f, g);
                if (
                  ((b = h[0]),
                  (c = h[1]),
                  (d = h[2]),
                  (e = h[3]),
                  is_object(b) && !is_jquery(b)
                    ? (b = $(b))
                    : is_string(b) && (b = $(b)),
                  !is_jquery(b) || 0 == b.length)
                )
                  return debug(conf, "Not a valid object.");
                is_undefined(c) && (c = "end"),
                  sz_storeMargin(b, opts),
                  sz_storeOrigCss(b);
                var i = c,
                  j = "before";
                "end" == c
                  ? d
                    ? (0 == itms.first
                        ? ((c = itms.total - 1), (j = "after"))
                        : ((c = itms.first), (itms.first += b.length)),
                      0 > c && (c = 0))
                    : ((c = itms.total - 1), (j = "after"))
                  : (c = gn_getItemIndex(c, e, d, itms, $cfs));
                var k = $cfs.children().eq(c);
                return (
                  k.length
                    ? k[j](b)
                    : (debug(
                        conf,
                        "Correct insert-position not found! Appending item to the end."
                      ),
                      $cfs.append(b)),
                  "end" == i ||
                    d ||
                    (itms.first > c && (itms.first += b.length)),
                  (itms.total = $cfs.children().length),
                  itms.first >= itms.total && (itms.first -= itms.total),
                  $cfs.trigger(cf_e("updateSizes", conf)),
                  $cfs.trigger(cf_e("linkAnchors", conf)),
                  !0
                );
              }),
              $cfs.bind(cf_e("removeItem", conf), function (a, b, c, d) {
                a.stopPropagation();
                var e = [b, c, d],
                  f = ["string/number/object", "boolean", "number"],
                  g = cf_sortParams(e, f);
                if (
                  ((b = g[0]),
                  (c = g[1]),
                  (d = g[2]),
                  b instanceof $ && b.length > 1)
                )
                  return (
                    (i = $()),
                    b.each(function () {
                      var e = $cfs.trigger(cf_e("removeItem", conf), [
                        $(this),
                        c,
                        d,
                      ]);
                      e && (i = i.add(e));
                    }),
                    i
                  );
                if (is_undefined(b) || "end" == b) i = $cfs.children().last();
                else {
                  b = gn_getItemIndex(b, d, c, itms, $cfs);
                  var i = $cfs.children().eq(b);
                  i.length && itms.first > b && (itms.first -= i.length);
                }
                return (
                  i &&
                    i.length &&
                    (i.detach(),
                    (itms.total = $cfs.children().length),
                    $cfs.trigger(cf_e("updateSizes", conf))),
                  i
                );
              }),
              $cfs.bind(
                cf_e("onBefore", conf) + " " + cf_e("onAfter", conf),
                function (a, b) {
                  a.stopPropagation();
                  var c = a.type.slice(conf.events.prefix.length);
                  return (
                    is_array(b) && (clbk[c] = b),
                    is_function(b) && clbk[c].push(b),
                    clbk[c]
                  );
                }
              ),
              $cfs.bind(cf_e("currentPosition", conf), function (a, b) {
                if ((a.stopPropagation(), 0 == itms.first)) var c = 0;
                else var c = itms.total - itms.first;
                return is_function(b) && b.call($tt0, c), c;
              }),
              $cfs.bind(cf_e("currentPage", conf), function (a, b) {
                a.stopPropagation();
                var e,
                  c = opts.pagination.items || opts.items.visible,
                  d = Math.ceil(itms.total / c - 1);
                return (
                  (e =
                    0 == itms.first
                      ? 0
                      : itms.first < itms.total % c
                      ? 0
                      : itms.first != c || opts.circular
                      ? Math.round((itms.total - itms.first) / c)
                      : d),
                  0 > e && (e = 0),
                  e > d && (e = d),
                  is_function(b) && b.call($tt0, e),
                  e
                );
              }),
              $cfs.bind(cf_e("currentVisible", conf), function (a, b) {
                a.stopPropagation();
                var c = gi_getCurrentItems($cfs.children(), opts);
                return is_function(b) && b.call($tt0, c), c;
              }),
              $cfs.bind(cf_e("slice", conf), function (a, b, c, d) {
                if ((a.stopPropagation(), 0 == itms.total)) return !1;
                var e = [b, c, d],
                  f = ["number", "number", "function"],
                  g = cf_sortParams(e, f);
                if (
                  ((b = is_number(g[0]) ? g[0] : 0),
                  (c = is_number(g[1]) ? g[1] : itms.total),
                  (d = g[2]),
                  (b += itms.first),
                  (c += itms.first),
                  items.total > 0)
                ) {
                  for (; b > itms.total; ) b -= itms.total;
                  for (; c > itms.total; ) c -= itms.total;
                  for (; 0 > b; ) b += itms.total;
                  for (; 0 > c; ) c += itms.total;
                }
                var i,
                  h = $cfs.children();
                return (
                  (i =
                    c > b
                      ? h.slice(b, c)
                      : $(
                          h
                            .slice(b, itms.total)
                            .get()
                            .concat(h.slice(0, c).get())
                        )),
                  is_function(d) && d.call($tt0, i),
                  i
                );
              }),
              $cfs.bind(
                cf_e("isPaused", conf) +
                  " " +
                  cf_e("isStopped", conf) +
                  " " +
                  cf_e("isScrolling", conf),
                function (a, b) {
                  a.stopPropagation();
                  var c = a.type.slice(conf.events.prefix.length),
                    d = crsl[c];
                  return is_function(b) && b.call($tt0, d), d;
                }
              ),
              $cfs.bind(cf_e("configuration", conf), function (e, a, b, c) {
                e.stopPropagation();
                var reInit = !1;
                if (is_function(a)) a.call($tt0, opts);
                else if (is_object(a))
                  (opts_orig = $.extend(!0, {}, opts_orig, a)),
                    b !== !1
                      ? (reInit = !0)
                      : (opts = $.extend(!0, {}, opts, a));
                else if (!is_undefined(a))
                  if (is_function(b)) {
                    var val = eval("opts." + a);
                    is_undefined(val) && (val = ""), b.call($tt0, val);
                  } else {
                    if (is_undefined(b)) return eval("opts." + a);
                    "boolean" != typeof c && (c = !0),
                      eval("opts_orig." + a + " = b"),
                      c !== !1 ? (reInit = !0) : eval("opts." + a + " = b");
                  }
                if (reInit) {
                  sz_resetMargin($cfs.children(), opts),
                    FN._init(opts_orig),
                    FN._bind_buttons();
                  var sz = sz_setSizes($cfs, opts);
                  $cfs.trigger(cf_e("updatePageStatus", conf), [!0, sz]);
                }
                return opts;
              }),
              $cfs.bind(cf_e("linkAnchors", conf), function (a, b, c) {
                return (
                  a.stopPropagation(),
                  is_undefined(b)
                    ? (b = $("body"))
                    : is_string(b) && (b = $(b)),
                  is_jquery(b) && 0 != b.length
                    ? (is_string(c) || (c = "a.caroufredsel"),
                      b.find(c).each(function () {
                        var a = this.hash || "";
                        a.length > 0 &&
                          -1 != $cfs.children().index($(a)) &&
                          $(this)
                            .unbind("click")
                            .click(function (b) {
                              b.preventDefault(),
                                $cfs.trigger(cf_e("slideTo", conf), a);
                            });
                      }),
                      !0)
                    : debug(conf, "Not a valid object.")
                );
              }),
              $cfs.bind(cf_e("updatePageStatus", conf), function (a, b) {
                if ((a.stopPropagation(), opts.pagination.container)) {
                  var d = opts.pagination.items || opts.items.visible,
                    e = Math.ceil(itms.total / d);
                  b &&
                    (opts.pagination.anchorBuilder &&
                      (opts.pagination.container.children().remove(),
                      opts.pagination.container.each(function () {
                        for (var a = 0; e > a; a++) {
                          var b = $cfs
                            .children()
                            .eq(gn_getItemIndex(a * d, 0, !0, itms, $cfs));
                          $(this).append(
                            opts.pagination.anchorBuilder.call(b[0], a + 1)
                          );
                        }
                      })),
                    opts.pagination.container.each(function () {
                      $(this)
                        .children()
                        .unbind(opts.pagination.event)
                        .each(function (a) {
                          $(this).bind(opts.pagination.event, function (b) {
                            b.preventDefault(),
                              $cfs.trigger(cf_e("slideTo", conf), [
                                a * d,
                                -opts.pagination.deviation,
                                !0,
                                opts.pagination,
                              ]);
                          });
                        });
                    }));
                  var f =
                    $cfs.triggerHandler(cf_e("currentPage", conf)) +
                    opts.pagination.deviation;
                  return (
                    f >= e && (f = 0),
                    0 > f && (f = e - 1),
                    opts.pagination.container.each(function () {
                      $(this)
                        .children()
                        .removeClass(cf_c("selected", conf))
                        .eq(f)
                        .addClass(cf_c("selected", conf));
                    }),
                    !0
                  );
                }
              }),
              $cfs.bind(cf_e("updateSizes", conf), function () {
                var b = opts.items.visible,
                  c = $cfs.children(),
                  d = ms_getParentSize($wrp, opts, "width");
                if (
                  ((itms.total = c.length),
                  crsl.primarySizePercentage
                    ? ((opts.maxDimension = d),
                      (opts[opts.d.width] = ms_getPercentage(
                        d,
                        crsl.primarySizePercentage
                      )))
                    : (opts.maxDimension = ms_getMaxDimension(opts, d)),
                  opts.responsive
                    ? ((opts.items.width = opts.items.sizesConf.width),
                      (opts.items.height = opts.items.sizesConf.height),
                      (opts = in_getResponsiveValues(opts, c, d)),
                      (b = opts.items.visible),
                      sz_setResponsiveSizes(opts, c))
                    : opts.items.visibleConf.variable
                    ? (b = gn_getVisibleItemsNext(c, opts, 0))
                    : "*" != opts.items.filter &&
                      (b = gn_getVisibleItemsNextFilter(c, opts, 0)),
                  !opts.circular && 0 != itms.first && b > itms.first)
                ) {
                  if (opts.items.visibleConf.variable)
                    var e =
                      gn_getVisibleItemsPrev(c, opts, itms.first) - itms.first;
                  else if ("*" != opts.items.filter)
                    var e =
                      gn_getVisibleItemsPrevFilter(c, opts, itms.first) -
                      itms.first;
                  else var e = opts.items.visible - itms.first;
                  debug(
                    conf,
                    "Preventing non-circular: sliding " + e + " items backward."
                  ),
                    $cfs.trigger(cf_e("prev", conf), e);
                }
                (opts.items.visible = cf_getItemsAdjust(
                  b,
                  opts,
                  opts.items.visibleConf.adjust,
                  $tt0
                )),
                  (opts.items.visibleConf.old = opts.items.visible),
                  (opts = in_getAlignPadding(opts, c));
                var f = sz_setSizes($cfs, opts);
                return (
                  $cfs.trigger(cf_e("updatePageStatus", conf), [!0, f]),
                  nv_showNavi(opts, itms.total, conf),
                  nv_enableNavi(opts, itms.first, conf),
                  f
                );
              }),
              $cfs.bind(cf_e("destroy", conf), function (a, b) {
                return (
                  a.stopPropagation(),
                  (tmrs = sc_clearTimers(tmrs)),
                  $cfs.data("_cfs_isCarousel", !1),
                  $cfs.trigger(cf_e("finish", conf)),
                  b && $cfs.trigger(cf_e("jumpToStart", conf)),
                  sz_restoreOrigCss($cfs.children()),
                  sz_restoreOrigCss($cfs),
                  FN._unbind_events(),
                  FN._unbind_buttons(),
                  "parent" == conf.wrapper
                    ? sz_restoreOrigCss($wrp)
                    : $wrp.replaceWith($cfs),
                  !0
                );
              }),
              $cfs.bind(cf_e("debug", conf), function () {
                return (
                  debug(conf, "Carousel width: " + opts.width),
                  debug(conf, "Carousel height: " + opts.height),
                  debug(conf, "Item widths: " + opts.items.width),
                  debug(conf, "Item heights: " + opts.items.height),
                  debug(conf, "Number of items visible: " + opts.items.visible),
                  opts.auto.play &&
                    debug(
                      conf,
                      "Number of items scrolled automatically: " +
                        opts.auto.items
                    ),
                  opts.prev.button &&
                    debug(
                      conf,
                      "Number of items scrolled backward: " + opts.prev.items
                    ),
                  opts.next.button &&
                    debug(
                      conf,
                      "Number of items scrolled forward: " + opts.next.items
                    ),
                  conf.debug
                );
              }),
              $cfs.bind("_cfs_triggerEvent", function (a, b, c) {
                return (
                  a.stopPropagation(), $cfs.triggerHandler(cf_e(b, conf), c)
                );
              });
          }),
          (FN._unbind_events = function () {
            $cfs.unbind(cf_e("", conf)),
              $cfs.unbind(cf_e("", conf, !1)),
              $cfs.unbind("_cfs_triggerEvent");
          }),
          (FN._bind_buttons = function () {
            if (
              (FN._unbind_buttons(),
              nv_showNavi(opts, itms.total, conf),
              nv_enableNavi(opts, itms.first, conf),
              opts.auto.pauseOnHover)
            ) {
              var a = bt_pauseOnHoverConfig(opts.auto.pauseOnHover);
              $wrp
                .bind(cf_e("mouseenter", conf, !1), function () {
                  $cfs.trigger(cf_e("pause", conf), a);
                })
                .bind(cf_e("mouseleave", conf, !1), function () {
                  $cfs.trigger(cf_e("resume", conf));
                });
            }
            if (
              (opts.auto.button &&
                opts.auto.button.bind(
                  cf_e(opts.auto.event, conf, !1),
                  function (a) {
                    a.preventDefault();
                    var b = !1,
                      c = null;
                    crsl.isPaused
                      ? (b = "play")
                      : opts.auto.pauseOnEvent &&
                        ((b = "pause"),
                        (c = bt_pauseOnHoverConfig(opts.auto.pauseOnEvent))),
                      b && $cfs.trigger(cf_e(b, conf), c);
                  }
                ),
              opts.prev.button &&
                (opts.prev.button.bind(
                  cf_e(opts.prev.event, conf, !1),
                  function (a) {
                    a.preventDefault(), $cfs.trigger(cf_e("prev", conf));
                  }
                ),
                opts.prev.pauseOnHover))
            ) {
              var a = bt_pauseOnHoverConfig(opts.prev.pauseOnHover);
              opts.prev.button
                .bind(cf_e("mouseenter", conf, !1), function () {
                  $cfs.trigger(cf_e("pause", conf), a);
                })
                .bind(cf_e("mouseleave", conf, !1), function () {
                  $cfs.trigger(cf_e("resume", conf));
                });
            }
            if (
              opts.next.button &&
              (opts.next.button.bind(
                cf_e(opts.next.event, conf, !1),
                function (a) {
                  a.preventDefault(), $cfs.trigger(cf_e("next", conf));
                }
              ),
              opts.next.pauseOnHover)
            ) {
              var a = bt_pauseOnHoverConfig(opts.next.pauseOnHover);
              opts.next.button
                .bind(cf_e("mouseenter", conf, !1), function () {
                  $cfs.trigger(cf_e("pause", conf), a);
                })
                .bind(cf_e("mouseleave", conf, !1), function () {
                  $cfs.trigger(cf_e("resume", conf));
                });
            }
            if (opts.pagination.container && opts.pagination.pauseOnHover) {
              var a = bt_pauseOnHoverConfig(opts.pagination.pauseOnHover);
              opts.pagination.container
                .bind(cf_e("mouseenter", conf, !1), function () {
                  $cfs.trigger(cf_e("pause", conf), a);
                })
                .bind(cf_e("mouseleave", conf, !1), function () {
                  $cfs.trigger(cf_e("resume", conf));
                });
            }
            if (
              ((opts.prev.key || opts.next.key) &&
                $(document).bind(cf_e("keyup", conf, !1, !0, !0), function (a) {
                  var b = a.keyCode;
                  b == opts.next.key &&
                    (a.preventDefault(), $cfs.trigger(cf_e("next", conf))),
                    b == opts.prev.key &&
                      (a.preventDefault(), $cfs.trigger(cf_e("prev", conf)));
                }),
              opts.pagination.keys &&
                $(document).bind(cf_e("keyup", conf, !1, !0, !0), function (a) {
                  var b = a.keyCode;
                  b >= 49 &&
                    58 > b &&
                    ((b = (b - 49) * opts.items.visible),
                    itms.total >= b &&
                      (a.preventDefault(),
                      $cfs.trigger(cf_e("slideTo", conf), [
                        b,
                        0,
                        !0,
                        opts.pagination,
                      ])));
                }),
              $.fn.swipe)
            ) {
              var b = "ontouchstart" in window;
              if ((b && opts.swipe.onTouch) || (!b && opts.swipe.onMouse)) {
                var c = $.extend(!0, {}, opts.prev, opts.swipe),
                  d = $.extend(!0, {}, opts.next, opts.swipe),
                  e = function () {
                    $cfs.trigger(cf_e("prev", conf), [c]);
                  },
                  f = function () {
                    $cfs.trigger(cf_e("next", conf), [d]);
                  };
                switch (opts.direction) {
                  case "up":
                  case "down":
                    (opts.swipe.options.swipeUp = f),
                      (opts.swipe.options.swipeDown = e);
                    break;
                  default:
                    (opts.swipe.options.swipeLeft = f),
                      (opts.swipe.options.swipeRight = e);
                }
                crsl.swipe && $cfs.swipe("destroy"),
                  $wrp.swipe(opts.swipe.options),
                  $wrp.css("cursor", "move"),
                  (crsl.swipe = !0);
              }
            }
            if ($.fn.mousewheel && opts.mousewheel) {
              var g = $.extend(!0, {}, opts.prev, opts.mousewheel),
                h = $.extend(!0, {}, opts.next, opts.mousewheel);
              crsl.mousewheel && $wrp.unbind(cf_e("mousewheel", conf, !1)),
                $wrp.bind(cf_e("mousewheel", conf, !1), function (a, b) {
                  a.preventDefault(),
                    b > 0
                      ? $cfs.trigger(cf_e("prev", conf), [g])
                      : $cfs.trigger(cf_e("next", conf), [h]);
                }),
                (crsl.mousewheel = !0);
            }
            if (
              (opts.auto.play &&
                $cfs.trigger(cf_e("play", conf), opts.auto.delay),
              crsl.upDateOnWindowResize)
            ) {
              var i = function () {
                  $cfs.trigger(cf_e("finish", conf)),
                    opts.auto.pauseOnResize &&
                      !crsl.isPaused &&
                      $cfs.trigger(cf_e("play", conf)),
                    sz_resetMargin($cfs.children(), opts),
                    $cfs.trigger(cf_e("updateSizes", conf));
                },
                j = $(window),
                k = null;
              if ($.debounce && "debounce" == conf.onWindowResize)
                k = $.debounce(200, i);
              else if ($.throttle && "throttle" == conf.onWindowResize)
                k = $.throttle(300, i);
              else {
                var l = 0,
                  m = 0;
                k = function () {
                  var a = j.width(),
                    b = j.height();
                  (a != l || b != m) && (i(), (l = a), (m = b));
                };
              }
              j.bind(cf_e("resize", conf, !1, !0, !0), k);
            }
          }),
          (FN._unbind_buttons = function () {
            var b = (cf_e("", conf), cf_e("", conf, !1));
            (ns3 = cf_e("", conf, !1, !0, !0)),
              $(document).unbind(ns3),
              $(window).unbind(ns3),
              $wrp.unbind(b),
              opts.auto.button && opts.auto.button.unbind(b),
              opts.prev.button && opts.prev.button.unbind(b),
              opts.next.button && opts.next.button.unbind(b),
              opts.pagination.container &&
                (opts.pagination.container.unbind(b),
                opts.pagination.anchorBuilder &&
                  opts.pagination.container.children().remove()),
              crsl.swipe &&
                ($cfs.swipe("destroy"),
                $wrp.css("cursor", "default"),
                (crsl.swipe = !1)),
              crsl.mousewheel && (crsl.mousewheel = !1),
              nv_showNavi(opts, "hide", conf),
              nv_enableNavi(opts, "removeClass", conf);
          }),
          is_boolean(configs) && (configs = { debug: configs });
        var crsl = {
            direction: "next",
            isPaused: !0,
            isScrolling: !1,
            isStopped: !1,
            mousewheel: !1,
            swipe: !1,
          },
          itms = { total: $cfs.children().length, first: 0 },
          tmrs = {
            auto: null,
            progress: null,
            startTime: getTime(),
            timePassed: 0,
          },
          scrl = {
            isStopped: !1,
            duration: 0,
            startTime: 0,
            easing: "",
            anims: [],
          },
          clbk = { onBefore: [], onAfter: [] },
          queu = [],
          conf = $.extend(!0, {}, $.fn.carouFredSel.configs, configs),
          opts = {},
          opts_orig = $.extend(!0, {}, options),
          $wrp =
            "parent" == conf.wrapper
              ? $cfs.parent()
              : $cfs
                  .wrap(
                    "<" +
                      conf.wrapper.element +
                      ' class="' +
                      conf.wrapper.classname +
                      '" />'
                  )
                  .parent();
        if (
          ((conf.selector = $cfs.selector),
          (conf.serialNumber = $.fn.carouFredSel.serialNumber++),
          (conf.transition =
            conf.transition && $.fn.transition ? "transition" : "animate"),
          FN._init(opts_orig, !0, starting_position),
          FN._build(),
          FN._bind_events(),
          FN._bind_buttons(),
          is_array(opts.items.start))
        )
          var start_arr = opts.items.start;
        else {
          var start_arr = [];
          0 != opts.items.start && start_arr.push(opts.items.start);
        }
        if (
          (opts.cookie &&
            start_arr.unshift(parseInt(cf_getCookie(opts.cookie), 10)),
          start_arr.length > 0)
        )
          for (var a = 0, l = start_arr.length; l > a; a++) {
            var s = start_arr[a];
            if (0 != s) {
              if (s === !0) {
                if (((s = window.location.hash), 1 > s.length)) continue;
              } else
                "random" === s && (s = Math.floor(Math.random() * itms.total));
              if (
                $cfs.triggerHandler(cf_e("slideTo", conf), [
                  s,
                  0,
                  !0,
                  { fx: "none" },
                ])
              )
                break;
            }
          }
        var siz = sz_setSizes($cfs, opts),
          itm = gi_getCurrentItems($cfs.children(), opts);
        return (
          opts.onCreate &&
            opts.onCreate.call($tt0, {
              width: siz.width,
              height: siz.height,
              items: itm,
            }),
          $cfs.trigger(cf_e("updatePageStatus", conf), [!0, siz]),
          $cfs.trigger(cf_e("linkAnchors", conf)),
          conf.debug && $cfs.trigger(cf_e("debug", conf)),
          $cfs
        );
      }),
    ($.fn.carouFredSel.serialNumber = 1),
    ($.fn.carouFredSel.defaults = {
      synchronise: !1,
      infinite: !0,
      circular: !0,
      responsive: !1,
      direction: "left",
      items: { start: 0 },
      scroll: {
        easing: "swing",
        duration: 500,
        pauseOnHover: !1,
        event: "click",
        queue: !1,
      },
    }),
    ($.fn.carouFredSel.configs = {
      debug: !1,
      transition: !1,
      onWindowResize: "throttle",
      events: { prefix: "", namespace: "cfs" },
      wrapper: { element: "div", classname: "caroufredsel_wrapper" },
      classnames: {},
    }),
    ($.fn.carouFredSel.pageAnchorBuilder = function (a) {
      return '<a href="#"><span>' + a + "</span></a>";
    }),
    ($.fn.carouFredSel.progressbarUpdater = function (a) {
      $(this).css("width", a + "%");
    }),
    ($.fn.carouFredSel.cookie = {
      get: function (a) {
        a += "=";
        for (
          var b = document.cookie.split(";"), c = 0, d = b.length;
          d > c;
          c++
        ) {
          for (var e = b[c]; " " == e.charAt(0); ) e = e.slice(1);
          if (0 == e.indexOf(a)) return e.slice(a.length);
        }
        return 0;
      },
      set: function (a, b, c) {
        var d = "";
        if (c) {
          var e = new Date();
          e.setTime(e.getTime() + 1e3 * 60 * 60 * 24 * c),
            (d = "; expires=" + e.toGMTString());
        }
        document.cookie = a + "=" + b + d + "; path=/";
      },
      remove: function (a) {
        $.fn.carouFredSel.cookie.set(a, "", -1);
      },
    }),
    $.extend($.easing, {
      quadratic: function (a) {
        var b = a * a;
        return a * (-b * a + 4 * b - 6 * a + 4);
      },
      cubic: function (a) {
        return a * (4 * a * a - 9 * a + 6);
      },
      elastic: function (a) {
        var b = a * a;
        return a * (33 * b * b - 106 * b * a + 126 * b - 67 * a + 15);
      },
    }));
})(jQuery);
